package com.lg.algorithm.collections.queue;

import java.util.ArrayDeque;
import java.util.concurrent.ConcurrentLinkedDeque;

/**
 * 没有加锁 没有阻塞
 * 底层全部cas给原来的变量赋值
 *
 * 开始多大
 * 底层是链表，一开始头尾指针指向的是一个属性为null的node
 *
 * 是否可以扩容
 * 每次增加一个node ，没有大小的限制
 *
 * 原理
 * 直接调用 unself.cas
 */
public class ConcurrentLinkedDequeTest {
    public static void main(String[] args) {
        ConcurrentLinkedDeque<Integer> objects2 = new ConcurrentLinkedDeque<>();
        objects2.add(1);
        objects2.offer(1);
        objects2.addFirst(1);
        objects2.addLast(1);
        objects2.pollFirst();
        objects2.pollLast();

        objects2.remove();
    }
}
